/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package util.www.http;

import java.math.BigDecimal;
import javax.servlet.http.HttpServletRequest;
import util.StringUtil;
import util.enums.EnumUtil;

/**
 *
 * @author Rdelacruz
 */
public class Request {
    HttpServletRequest request;
    
    public Request(HttpServletRequest request) {
        this.request = request;
    }
    
    
    public boolean existeParametro(String parametro) {
        return request.getParameter(parametro)!=null;
    }
    
    /*
    public String getStringConVacio(String parametro) {
        String valor = request.getParameter(parametro);
        if(valor!=null) {
            return valor.trim();
        }
        return valor;
    }
    */
    
    public String getString(String parametro) {
        String valor = request.getParameter(parametro);
        if(valor!=null) {
            valor = valor.trim();
            if(valor.isEmpty())
                valor = null;
        }
        return valor;
    }
    
    public int getInt(String parametro) {
        return StringUtil.StringtoInt(request.getParameter(parametro));
    }

    public Integer getInteger(String parametro) {
        return StringUtil.StringtoInteger(request.getParameter(parametro));
    }
    
    public Boolean getBoolean(String parametro) {
        return StringUtil.StringtoBoolean(request.getParameter(parametro));
    }
    
    public Boolean getBoolean(String parametro, String valorFalso) {
        return StringUtil.StringtoBoolean(request.getParameter(parametro), valorFalso);
    }

    public BigDecimal getBigDecimal(String parametro) {
        return StringUtil.StringtoBigDecimal(request.getParameter(parametro));
    }

    public <T extends Enum<T>> T getEnum(final Class<T> aClass, final String parametro) {
        return EnumUtil.getEnumByLiteral(aClass, request.getParameter(parametro));
    }

    
}
